// #include <stdint.h>
#include "../temperature_control_sub_module/TempADC.h"

#ifndef HT162X_LCD_H
#define HT162X_LCD_H


typedef enum
{
    Lcd_NotShine = 0, //(默认)数字不闪耀
    Lcd_Shine, //数字闪耀
    Lcd_DelayShine_Trigger, //触发 延迟闪耀
    Lcd_DelayShine, //延迟闪耀
}Lcd_State_E;

typedef struct
{
    uint16_t Get;
    uint16_t Write;
    // Lcd_State_E isShine;
}Lcd_TempSet_S;
typedef struct
{
    uint16_t val;
    Lcd_State_E isShine;
}Lcd_TempAct_S;
extern Lcd_TempAct_S Lcd_TempAct;
typedef struct
{
    Lcd_TempSet_S Hour;
    Lcd_TempSet_S Minute;
    uint16_t Second;
    uint32_t Downcount; //时间倒计时,s为单位的,Hour + Minute + Second
    uint32_t Setting; //时间设置值
    uint8_t Enable; //1:倒计时使能, 0:倒计时禁止
    void (*Hour_Add_Handle)(void);
    void (*Hour_Sub_Handle)(void);
    void (*Minute_Add_Handle)(void);
    void (*Minute_Sub_Handle)(void);
    Lcd_State_E isShine_Hour;
    Lcd_State_E isShine_Minute;
}Lcd_Timer_S;
extern Lcd_Timer_S Lcd_Timer;
extern Lcd_State_E Lcd_Timer_Colon_IsShow;
typedef struct
{
    uint16_t Temp;
    uint16_t Temp_Settings;
    Lcd_State_E isShine;
}Lcd_Probe1_S;
extern Lcd_Probe1_S Lcd_Probe1;
typedef struct
{
    uint16_t Temp;
    uint16_t Temp_Settings;
    Lcd_State_E isShine;
}Lcd_Probe2_S;
extern Lcd_Probe2_S Lcd_Probe2;

extern void (*Lcd_TempAct_AutoShine_Handle)(void);

void HT162X_Lcd_10ms(void);

#endif
